查看原文
其他

自定义控件-精美的心电波形图

2016-12-13 于亚豪 终端研发部
今日小结

在HashMap的源码,实现原理,底层结构。

  1. 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全
    Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高一些,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合
    (Collections.synchronizedMap()实现原理是Collections定义了一个SynchronizedMap的内部类,这个类实现了Map接口,在调用方法时使用synchronized来保证线程同步,当然了实际上操作的还是我们传入的HashMap实例,简单的说就是Collections.synchronizedMap()方法帮我们在操作HashMap时自动添加了synchronized来实现线程同步,类似的其它Collections.synchronizedXX方法也是类似原理)

  2. HashMap可以使用null作为key,而Hashtable则不允许null作为key
    虽说HashMap支持null值作为key,不过建议还是尽量避免这样使用,因为一旦不小心使用了,若因此引发一些问题,排查起来很是费事

    HashMap以null作为key时,总是存储在table数组的第一个节点上

  3. HashMap是对Map接口的实现,HashTable实现了Map接口和Dictionary抽象类

  4. HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75,HashMap扩容时是当前容量翻倍即:capacity*2,Hashtable扩容时是容量翻倍+1即:capacity*2+1

  5. 两者计算hash的方法不同 Hashtable计算hash是直接使用key的hashcode对table数组的长度直接进行取模

作者简介

本篇来自androidstarjack 的投稿,分享了手把手叫你制作一个精美的在线音乐播放器,希望能帮助有需要的朋友。

androidstarjack 的博客地址:

http://blog.csdn.net/androidstarjack/article/details/53576331

正文

大家好,最近项目上要优化一些Ui,发下之前的一些界面不太美观,比如说关于心电的一些折线图展示等问题。于是就乘着一些空余时间谢了个心电图的控件。来与大家一起分享。


由于需要根据实际情况设置不同的目标线会有不同的情况。

 有一个目标线的效果图:






对与自定义组件比较陌生童鞋们可以访问我之前的一些博客:

http://blog.csdn.net/androidstarjack/article/list/5

接下来主要是绘制一些主要关键点:

1.绘制底部的日期 


 2. 绘制单元格


3.绘制目标线



4,.设置目标线


最重要的还是每次更新完毕后要精确计算其:目标线和集合中的最大值和最小值:


好,最后附上源码:http://download.csdn.net/detail/androidstarjack/9708431

老于的博客地址: http://blog.csdn.net/androidstarjack

另外你觉得此篇文章对您有所帮助 请加 QQ交流群 :232203809    

此外还可以关注终端研发部


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存